package com.lingnan.wanxiangxinxun.aspect;

import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

@Aspect
@Component
@Slf4j
public class RedisTemplateLoggingAspect {


//    // 配置切入点，拦截 RedisTemplate 的所有方法
//    @Pointcut("execution(* org.springframework.data.redis.core.RedisTemplate.*(..))")
//    public void redisTemplateMethods() {}
//
//    // 使用 Around 通知记录方法执行的详细信息
//    @Around("redisTemplateMethods()")
//    public Object logRedisTemplateOperations(ProceedingJoinPoint joinPoint) throws Throwable {
//        String methodName = joinPoint.getSignature().getName();
//        Object[] args = joinPoint.getArgs();
//
//        // 记录方法调用前的日志
//        log.info("执行RedisTemplate方法: {}，参数为：{}", methodName, args);
//        long startTime = System.currentTimeMillis();
//
//        // 执行方法
//        Object result = joinPoint.proceed();
//
//        // 记录方法调用后的日志
//        long endTime = System.currentTimeMillis();
//        log.info("RedisTemplate操作完成 - 方法: {}(), 耗时: {}ms, 结果: {}", methodName, (endTime - startTime), result);
//
//        return result;
//    }
}